iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

(๑˃ᴗ˂)ﻭ
嗨,我是wec,今天是DAY 7。

🔎 題目難度與描述

難度:EASY

題目描述:

每次可以爬1或2階台階,找出有多少種方法可以到達第n階台階。

🔎 解題思路&程式碼

1️⃣ 迭代法

第1步: 用兩個變量ab來記錄到達前兩級樓梯的爬法數a代表到n-2級的爬法數,b代表到達第n-1級的爬法數。
第2步: 然後從第3階開始,不斷更新ab的值,直到計算到第n級。
第3步: 最後return的b就是到達第n階樓梯的總爬法數。
程式碼:

def climb_stairs(n)
  return n if n <= 2
  
  a, b = 1, 2
  (3..n).each { a, b = b, a + b }
  b
end

🔎 總結

時間複雜度

迭代法: 時間複雜度為O(n)
➡️ 因為使用固定數量的變量(ab),所以迭代法的空間複雜度為O(1),可以很好的去節省內存。比起遞迴法,迭代法不會有重複計算的問題,所以在簡單的題目上會比較有效率,不過當題目較為複雜時,遞迴法也會成為解題的選擇ㄛ(っ˘ω˘ς )。

以上就是今天的內容!明天開始要刷15天的medium題了ㄛ(拿出小痛苦面具)

相信IT人動腦時都要吃點東西,所以今天邊寫邊吃醬油仙貝。
明天要說:Ruby精選刷題!Medium路跑D-1(>∀・)⌒☆


上一篇
DAY 6: Best Time to Buy and Sell Stock 貪婪法のEasy題!
下一篇
DAY 8:Search in Rotated Sorted Array 中級の開始!
系列文
Ruby刷題:沒那麼痛苦的痛苦面具30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言